package com.itheima.map_demo.map_demo;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
    Map中常用方法 :
        public V put(K key, V value):  把指定的键与指定的值添加到Map集合中
        public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除，返回被删除元素的值
        public V get(Object key) 根据指定的键，在Map集合中获取对应的值
        public Set<K> keySet(): 获取Map集合中所有的键，存储到Set集合中
        public boolean containKey(Object key): 判断该集合中是否有此键。

     需求 : 将以下数据保存到Map集合中 , 进行测试以上方法
        “文章“       "马伊琍"
        “谢霆锋”     “王菲”
        “李亚鹏”     “王菲”

    注意 :
        单列集合中所有集合添加的方法都叫做 : add()
        双列集合中所有集合添加的方法都叫做 : put()
 */
public class MapDemo1 {
    public static void main(String[] args) {
        // 多态创建Map对象
        Map<String, String> hm = new HashMap<>();

        //  public V put(K key, V value):  把指定的键与指定的值添加到Map集合中
        //  元素添加成功则返回null
        // 元素的键如果已经存在 , 那么会覆盖之前的元素 , 并把被覆盖元素的值返回
//        System.out.println(hm.put("文章", "马伊琍"));
//        System.out.println(hm.put("王菲", "谢霆锋"));
//        System.out.println(hm.put("王菲", "李亚鹏"));

        hm.put("文章", "马伊琍");
        hm.put("王菲", "谢霆锋");
        // hm.put("王菲", "李亚鹏");

        // public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除，返回被删除元素的值
        // System.out.println(hm.remove("李亚鹏"));

        // public V get(Object key) 根据指定的键，在Map集合中获取对应的值
        // System.out.println(hm.get("文章"));

        // public Set<K> keySet(): 获取Map集合中所有的键，存储到Set集合中
//        Set<String> set = hm.keySet(); // {文章 , 王菲}
//        for (String s : set) {
//            System.out.println(s);
//        }

        // Collection<V> values() : 拿到Map集合中所有的值
//        Collection<String> values = hm.values();
//        for (String value : values) {
//            System.out.println(value);
//        }

        // public boolean containKey(Object key): 判断该集合中是否有此键。
        // System.out.println(hm.containsKey("李亚鹏"));

        System.out.println(hm.containsValue("谢霆锋"));


        System.out.println(hm);// 内容 {文章=马伊琍, 王菲=谢霆锋}
    }
}
